gccs == google-closure-compliler-service

Vanilla Node.js script to compile JS code using
Google's Closure Compiler Service (zero dependencies).
Install
You can install gccs
either as a global CLI script or per project.
npm i -g gccs
npm i gccs
Usage
Actually, there is no real need to install it if you have npx
(default with npm@5.2.0
and up).
Just call it with npx gccs input.js
CLI
gccs --help
gccs input.js
gccs input.js output.min.js
gccs input.js -
gccs --https false --compilation_level WHITESPACE_ONLY --formatting pretty_print -- input.es6.js output.es5.js
cat input.js | gccs
cat input.js | gccs - output.min.js
gccs my-cli.js my-cli && chmod +x my-cli
(echo '#!/usr/bin/env node' && gccs my-cli.js -) > my-cli && chmod +x my-cli
package.json
For a small JS/ES6 library gccs
could be sufficient as a build script.
Here is an example of build
command for package.json
of verup library:
...
"scripts": {
"es5": "gccs --compilation_level WHITESPACE_ONLY --formatting pretty_print -- verup.js dist/verup.js",
"min": "gccs --compilation_level SIMPLE_OPTIMIZATIONS -- dist/verup.js dist/verup.min.js",
"build": "npm run es5 && npm run min"
...
}
...
This build command would produce the ES5 version of verup.js
at dist/verup.js
and the minified ES5 version at dist/verup.min.js
.
Isn't that cool? :-)
Node module
const gccs = require("gccs");
var js_code = "var my = 'owesome'; // script";
gccs(js_code, function (error, minjs) {
if ( error ) return console.error(error);
console.log(minjs);
});
gccs({js_code: js_code, compilation_level: 'WHITESPACE_ONLY'}, function (error, minjs) {
if ( error ) return console.error(error);
console.log(minjs);
});
gccs.file('input.js', function (error, minjs) {
if ( error ) return console.error(error);
console.log(minjs);
})
gccs.file('input.js', '-', function (error, minjs) {})
gccs.file('input.js', process.stdout, function (error, minjs) {})
var _in = fs.createReadStream('input.js');
gccs(_in, function (error, minjs) {
if ( error ) return console.error(error);
console.log(minjs);
});
var _in = fs.createReadStream('input.js');
var _out = fs.createWriteStream('output.min.js');
gccs.file(_in, _out, function (error) {})